package level01.one;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

//
public class One {
    public static void main(String[] args) throws InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
        //获取Tester类的字节码对象
        Class<Tester> testerClass = Tester.class;

        //Tester tester = testerClass.newInstance()
        // 创建实例（使用推荐的 Constructor 方式）
        Tester tester = testerClass.getDeclaredConstructor().newInstance();

        //查找Tester类中对应的publicIntTest方法，后面是方法对应的参数
        Method test = testerClass.getDeclaredMethod("publicIntTest", int.class, Integer.class);

        //方法不是由public修饰时，需要强行访问
        test.setAccessible(true);

        // 调用 test 方法，传递参数 100（int）和 200（自动装箱为 Integer）
        Object invoke = test.invoke(tester, 100, 200);

        System.out.println(invoke);

    }
}
